package hero.mps.leet_code_11;

public class MaxWaterArea {
    public static int maxArea(int [] height) {
        int res = 0;
        // 外层循环遍历数组
        for (int i = 0; i < height.length; i++) {
            // 内层循环遍历数组，从当前外层循环的下一个元素开始
            for (int j = 1; j < height.length; j++) {
                // 计算以i和j为左右边界的矩形的面积，并更新res为当前最大面积
                res = Math.max(res, (j - i) * Math.min(height[i], height[j]));
            }
        }
        // 返回最大矩形面积
        return res;

    }

    public static int maxArea1(int [] height) {
        int res = 0;
        // 定义左右指针
        int left = 0;
        int right = height.length - 1;
        while (left < right) {
            int currentArea = (right - left) * Math.min(height[left], height[right]);
            res = Math.max(res, currentArea);
            if (height[left] < height[right]) {
                // 左指针移动
                left++;
            } else {
                // 右指针移动
                right--;
            }
        }
        // 返回最大矩形面积
        return res;

    }

    public static void main(String[] args) {
        int[] height = {1,8,6,2,5,4,8,3,7};
        System.out.println(maxArea1(height));
    }
}
